module.exports = {
  publicPath: process.env.NODE_ENV === 'production' ? './' : '/',
  devServer: {
    port: 8081
  },
  chainWebpack: config => {
    if (process.env.NODE_ENV === 'production') {
      // 修改HTML插件，替换资源路径
      config.plugin('html').tap(args => {
        args[0].templateParameters = {
          BASE_URL: './'
        }
        return args
      })
    }
  },
  pluginOptions: {
    electronBuilder: {
      nodeIntegration: true,
      contextIsolation: false,
      mainProcessFile: 'src/background.js',
      rendererProcessFile: 'src/main.js',
      builderOptions: {
        appId: 'com.gulu.influxdb.client',
        productName: 'InfluxDB Client',
        directories: {
          output: 'dist_electron'
        },
        files: [
          '**/*',
          'public/icon.jpg'
        ],
        extraResources: [
          {
            from: 'public/icon.jpg',
            to: 'icon.jpg'
          }
        ],
        // 应用图标配置
        // 注意: 需要生成对应格式的图标文件，详见 ICON_GENERATION_GUIDE.md
        // - Windows: public/icon.ico (必须是真正的 ICO 格式，不能是重命名的 PNG)
        // - macOS: public/icon.icns
        // - Linux: public/icon.png
        win: {
          target: 'nsis',
          // 暂时注释掉 icon 配置，因为当前的 icon.ico 实际上是 PNG 格式
          // 需要使用正确的工具生成真正的 ICO 文件
          // icon: 'public/icon.ico',
          icon: 'public/icon.png',  // 临时使用 PNG，虽然不是最佳方案但能打包
          publisherName: 'GuLu'
        },
        linux: {
          target: 'AppImage',
          icon: 'public/icon.png'
        }
      }
    }
  },
  transpileDependencies: true
}